﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IAfvandingsService" in both code and config file together.
[ServiceContract]
public interface IAfvandingsService
{

    [OperationContract]
    bool AddStation(string networkAdress, string ipAdress, int port, string waterLevel);

    /// <summary>
    /// Add a pump for specific pumpstation
    /// </summary>
    /// <param name="pumpCapacity">pump capacity for pump</param>
    [OperationContract]
    bool AddPump(decimal pumpCapacity);
    /// <summary>
    /// Change pump station data
    /// </summary>
    [OperationContract]
    bool EditStation();

    /// <summary>
    /// Change pump data
    /// </summary>
    [OperationContract]
    bool EditPump();

    /// <summary>
    /// Delete pump
    /// </summary>
    [OperationContract]
    bool RemovePump();

    /// <summary>
    /// Delete pumpstation
    /// </summary>
    [OperationContract]
    bool RemoveStation();

    /// <summary>
    /// Request current water level for specific pumpstation
    /// </summary>
    [OperationContract]
    double RequestCurrentWaterLevel();

    /// <summary>
    /// Request specific pumpstation to start specific pump
    /// </summary>
    [OperationContract]
    bool StartPump();

    /// <summary>
    /// Request specific pumpstation to stop specific pump
    /// </summary>
    [OperationContract]
    bool StopPump();

    /// <summary>
    /// Returns currentWaterLevel for each pumpstation
    /// </summary>
    [OperationContract]
    List<Station> RequestInfoForStations();
}
